import axios from "axios"
import Nprogress from "nprogress"
import "nprogress/nprogress.js"

const ajax = axios.create({
  baseURL: "/api",
  timeout: 10000,
})

//添加请求拦截器  config（请求报文） 请求的所有信息所组成的一个对象
ajax.interceptors.request.use(function (config) {
  // 发送请求成功执行的回调函数
  Nprogress.start()
  return config
})

// 添加响应拦截器
ajax.interceptors.response.use(
  function (response) {
    //响应成功执行的回调函数
    Nprogress.done()
    return response.data
  },
  function (error) {
    //响应失败执行的回调函数
    //做统一处理
    Nprogress.done()
    if (error.response.status === 401) {
      alert("未授权")
    } else if (error.response.status === 403) {
      alert("禁止访问")
    } else if (error.response.status === 404) {
      alert("错误访问")
    } else if (error.response.status === 500) {
      alert("服务器出错了")
    }
    return new Promise(() => {}) //这里不返回失败的Promise  返回一个pending的promise  中断promisse链
  }
)

export default ajax
